
package com.itouch.widget;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.itouch.bracelet.R;

public class XListViewFooter extends LinearLayout {
      public final static int STATE_NORMAL = 0;
      public final static int STATE_READY = 1;
      public final static int STATE_LOADING = 2;

      private Context mContext;

      private View mContentView;
      private View mProgressBar;
      private TextView mHintView;

      public XListViewFooter(Context context) {
            super(context);
            initView(context);
      }

      public XListViewFooter(Context context, AttributeSet attrs) {
            super(context, attrs);
            initView(context);
      }

	  	//hcx
	  	public XListViewFooter(Context context,String text) {
	  		super(context);
	  		initView(context);
	  		mHintView.setText(text);
	  	}
  	
  	
      public void setState(int state) {
            mHintView.setVisibility(View.INVISIBLE);
            mProgressBar.setVisibility(View.INVISIBLE);
            mHintView.setVisibility(View.INVISIBLE);
            if (state == STATE_READY) {
                  mHintView.setVisibility(View.VISIBLE);
                  mHintView.setText(R.string.xlistview_footer_hint_ready);
            } else if (state == STATE_LOADING) {
                  mProgressBar.setVisibility(View.VISIBLE);
            } else {
                  mHintView.setVisibility(View.VISIBLE);
                  mHintView.setText(R.string.xlistview_footer_hint_normal);
            }
      }

      public void setBottomMargin(int height) {
            if (height < 0) return;
            LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mContentView.getLayoutParams();
            lp.bottomMargin = height;
            mContentView.setLayoutParams(lp);
      }

      public int getBottomMargin() {
            LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mContentView.getLayoutParams();
            return lp.bottomMargin;
      }


      /**
       * normal status
       */
      public void normal() {
            mHintView.setVisibility(View.VISIBLE);
            mProgressBar.setVisibility(View.GONE);
      }


      /**
       * loading status
       */
      public void loading() {
            mHintView.setVisibility(View.GONE);
            mProgressBar.setVisibility(View.VISIBLE);
      }

      /**
       * hide footer when disable pull load more
       */
      public void hide() {
            LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mContentView.getLayoutParams();
            lp.height = 0;
            mContentView.setLayoutParams(lp);
      }

      /**
       * show footer
       */
      public void show() {
            LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mContentView.getLayoutParams();
            lp.height = android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
            mContentView.setLayoutParams(lp);
      }

      private void initView(Context context) {
            mContext = context;
            LinearLayout moreView = (LinearLayout) LayoutInflater.from(mContext).inflate(R.layout.xlistview_footer, null);
            addView(moreView);
            moreView.setLayoutParams(new LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT));

            mContentView = moreView.findViewById(R.id.xlistview_footer_content);
            mProgressBar = moreView.findViewById(R.id.xlistview_footer_progressbar);
            mHintView = (TextView) moreView.findViewById(R.id.xlistview_footer_hint_textview);
      }


}
